Úloha 6.
Stretli ste sa s kamarátom na ulici. Keďže ste obidvaja strašne unavený, tak sa vám nechce ani jednému urobiť krok navyše. Preto sa dohodnete, že sa stretnete v prostriedku. Pokúste sa naprogramovať túto úlohu tak, aby sa dve autíčka stretli v strede bez toho, aby jedno odmeralo celú vzdialenosť medzi autíčkami.
- Základným prvkom bude komunikácia medzi autíčkami. Autíčka pôjdu postupne nastriedačku. Najprv sa jedno pohne dopredu o 5 otáčok a potom druhé.
- Kontrola toho, či už autíčka sú pri sebe, je pomocou dotykového senzora. Preto ak počas pohybu jedného z autíčok dopredu dôjde k stlačeniu dotykového senzora, tak musíme prepočítať vzdialenosť, ktorá nám ešte ostala. Ako sme sa už v predcházdzajúcej podtéme naučili, tak na naprogramovanie takejto situácie sú najvhodnejšie udalosti. V tomto príklade pôjde o udalosť stlačenia dotykového senzora.
- Prepočítanie ostávajúcej vzdialenosti bude nasledovné. Ak dôjde k udalosti stlačenia dotykového senzora počas pohybu prvého autíčka, tak ostávajúca vzdialenosť je počet otáčok, ktoré toto autíčko prešlo. Preto sa musí vrátiť na pozíciu, z ktorej vyštartoval a prejsť len polovicu otáčok.
- Ak nastane udalosť stlačenia dotykového senzora v druhom autíčku, tak stred, kde sa majú stretnúť, je za bodom kde došlo k udalosti. Preto sa 2. autíčko musí vrátiť naspäť a poslať v správe počet otáčok, ktoré prešlo, prvému autíčku, ktoré prepočíta vzdialenosť. Prvé autíčko sa posunie o 5 otáčok naspäť. Spočíta 5 plus počet otáčok doručených v správe a dostaneme aktuálnu vzdialenosť autíčok. 1. autíčko sa posunie o polovicu a pošle správu druhému, nech sa posunie o rovnakú vzdialenosť.
1.autíčko
2.autíčko
|